﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using DevExpress.XtraEditors.Controls;
using Stimulsoft.Report;
using Stimulsoft.Report.Dictionary;
using System.IO;

namespace Gemciler_Uretim.Raporlar
{
    public partial class RaporSec : DevExpress.XtraEditors.XtraForm
    {
        public RaporSec()
        {
            InitializeComponent();
        }
        SqlConnecitonClass sqlbaglanti = new SqlConnecitonClass();
        public int aktif_kullanici,rapor_tablo_no;
        public string AppPath = System.Windows.Forms.Application.StartupPath, yazdir_conectstring;
        public string ilktarih, sontarih, birgunonce, birgunsonra;
        public string ilkevraknoseri, sonevraknoseri, ilkcarikodu, soncarikodu, ilkstokkodu, sonstokkodu, ilkbolumno, sonbolumno;
        public Int32 ilkevraknosira, sonevraknosira,kayitno;

        string secilen_rapor_dosyasi, secilen_rapor_adi;
        Int16 isleme_devam=1,rapor_filtre_varyok=1;
        private void RaporSec_Load(object sender, EventArgs e)
        {
            StreamReader sr = File.OpenText("" + AppPath + "\\AYAR.INI");
            yazdir_conectstring = sr.ReadLine();
           
            sr.Close();

            this.Text = "Rapor Seçim Ekranı /Bolum No : " + rapor_tablo_no + " /Kayit no: "+kayitno+"";
          
            dgv_guncelle();



        }
        private void FormTasarim()
        {

            if (secilen_rapor_dosyasi == "")
            {
                MessageBox.Show("BİR RAPOR SEÇİN");
            }
            else 
            {
                try
                {
                    StiReport report = new StiReport();
                    report.Load("" + AppPath + "\\Form\\" + secilen_rapor_dosyasi + "");
                    report.Dictionary.Databases.Clear();
                    report.Dictionary.Databases.Add(new StiSqlDatabase("RAPORDATA", "" + yazdir_conectstring + ""));
                    FormFiltresi();
                    if (isleme_devam == 0)
                    {
                        report["@kayitno"] = kayitno;

                        report["@kayitno"] = ilkevraknoseri;

                        report["@ilkevraknoseri"] = ilkevraknoseri;
                        report["@sonevraknoseri"] = sonevraknoseri;

                        report["@ilkevraknosira"] = ilkevraknosira;
                        report["@sonevraknosira"] = sonevraknosira;

                        report["@ilkbolumno"] = ilkbolumno;
                        report["@sonbolumno"] = sonbolumno;
                        report["@ilkcarikodu"] = ilkcarikodu;
                        report["@soncarikodu"] = soncarikodu;
                        report["@ilkstokkodu"] = ilkstokkodu;
                        report["@sonstokkodu"] = sonstokkodu;

                        report["@ilktarih"] = ilktarih;
                        report["@sontarih"] = sontarih;
                        report["@birgunonce"] = birgunonce;
                        report["@birgunsonra"] = birgunsonra;

                        report.Design();
                    }
                    
                    report.Design();
                }
                catch { MessageBox.Show("RAPOR SEÇİLMEDİ YADA RAPOR DOSYASI YOK ?"); }
            }
        }
        private void FormDok()
        {
               if (secilen_rapor_dosyasi == "")
            {
                MessageBox.Show("BİR RAPOR SEÇİN");
            }
            else 
            {
                   try
                   {
                StiReport report = new StiReport();
                report.Load("" + AppPath + "\\Form\\" + secilen_rapor_dosyasi + "");
                report.Dictionary.Databases.Clear();
                report.Dictionary.Databases.Add(new StiSqlDatabase("RAPORDATA", "" + yazdir_conectstring + ""));
                
                FormFiltresi();
                if (isleme_devam == 0)
                {
                    report["@kayitno"] = kayitno;

                    report["@ilkevraknoseri"] = ilkevraknoseri;
                    report["@sonevraknoseri"] = sonevraknoseri;

                    report["@ilkevraknosira"] = ilkevraknosira;
                    report["@sonevraknosira"] = sonevraknosira;

                    report["@ilkbolumno"] = ilkbolumno;
                    report["@sonbolumno"] = sonbolumno;
                    report["@ilkcarikodu"] = ilkcarikodu;
                    report["@soncarikodu"] = soncarikodu;
                    report["@ilkstokkodu"] = ilkstokkodu;
                    report["@sonstokkodu"] = sonstokkodu;

                    report["@ilktarih"] = ilktarih;
                    report["@sontarih"] = sontarih;
                    report["@birgunonce"] = birgunonce;
                    report["@birgunsonra"] = birgunsonra;

                    report.ShowWithRibbonGUI();
                }
                   }
                   catch { MessageBox.Show("RAPOR SEÇİLMEDİ YADA RAPOR DOSYASI YOK ?"); }
            }           

        }
        private void FormYazdir()
        {
            if (secilen_rapor_dosyasi == "")
            {
                MessageBox.Show("BİR RAPOR SEÇİN");
            }
            else
            {
                try
                {
                    StiReport report = new StiReport();
                    report.Load("" + AppPath + "\\Form\\" + secilen_rapor_dosyasi + "");
                    report.Dictionary.Databases.Clear();
                    report.Dictionary.Databases.Add(new StiSqlDatabase("RAPORDATA", "" + yazdir_conectstring + ""));

                    FormFiltresi();
                    if (isleme_devam == 0)
                    {
                        report["@kayitno"] = kayitno;

                      

                        report["@ilkevraknoseri"] = ilkevraknoseri;
                        report["@sonevraknoseri"] = sonevraknoseri;

                        report["@ilkevraknosira"] = ilkevraknosira;
                        report["@sonevraknosira"] = sonevraknosira;

                        report["@ilkbolumno"] = ilkbolumno;
                        report["@sonbolumno"] = sonbolumno;
                        report["@ilkcarikodu"] = ilkcarikodu;
                        report["@soncarikodu"] = soncarikodu;
                        report["@ilkstokkodu"] = ilkstokkodu;
                        report["@sonstokkodu"] = sonstokkodu;

                        report["@ilktarih"] = ilktarih;
                        report["@sontarih"] = sontarih;
                        report["@birgunonce"] = birgunonce;
                        report["@birgunsonra"] = birgunsonra;


                        report.Print();
                    }
                }
                catch { MessageBox.Show("RAPOR SEÇİLMEDİ YADA RAPOR DOSYASI YOK ?"); }
            }

        }
        private void FormFiltresi()
        {
            if (rapor_filtre_varyok == 0)
            {
                Raporlar.RaporFiltreGgm fr = new Raporlar.RaporFiltreGgm();
                fr.isleme_devam = 1;
                fr.ShowDialog();

                ilkevraknoseri = fr.ilkevraknoseri;
                ilkevraknosira = fr.ilkevraknosira;
                sonevraknoseri = fr.sonevraknoseri;
                sonevraknosira = fr.sonevraknosira;
                ilkbolumno = fr.ilkbolumno;
                sonbolumno = fr.sonbolumno;
                ilkstokkodu = fr.ilkstokkodu;
                sonstokkodu = fr.sonstokkodu;
                ilkcarikodu = fr.ilkcarikodu;
                soncarikodu = fr.soncarikodu;


                ilktarih = fr.ilktarih;
                sontarih = fr.sontarih;
                birgunonce = fr.birgunonce;
                birgunsonra = fr.birgunsonra;
                isleme_devam = fr.isleme_devam;

            }
          
        
        }
        private void dgv_guncelle()
        {
            gridControl1.DataSource = sqlbaglanti.ShowTable("SELECT  rpr_RECno AS [KAYITNO],[rpr_bolum_no] AS BOLUM      ,[rpr_adi] AS ADI      ,[rpr_kriter_tipi] AS FİLTRE     ,[rpr_form_adi] AS FORM ,rpr_kullanici_no AS KULLANICI FROM [TK_FORM_DZYN] where [rpr_bolum_no]=" + rapor_tablo_no + " and  rpr_kullanici_no in (0," + aktif_kullanici + ")", CommandType.Text);
            this.gridControl1.TabIndex = 0;
            this.gridView1.OptionsBehavior.AllowIncrementalSearch = false;
            this.gridView1.OptionsView.ShowAutoFilterRow = false;
            this.gridView1.OptionsView.ShowGroupPanel = false;
            this.gridView1.OptionsBehavior.Editable = false;
            this.gridView1.OptionsBehavior.ReadOnly = false;
            this.gridView1.Columns["FİLTRE"].Visible = false;
            this.gridView1.Columns["KULLANICI"].Visible = false;
            this.gridView1.Columns["ADI"].Width = 220;
            this.gridView1.Columns["FORM"].Width = 120;
            this.gridView1.Columns["KAYITNO"].Visible = false;
          

            gridView1.OptionsView.ColumnAutoWidth = false;


            gridView1.OptionsView.HeaderFilterButtonShowMode = FilterButtonShowMode.Button;

            //gridView1.BestFitColumns(); 
        
        }
        private void simpleButton3_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void raporEkleToolStripMenuItem_Click(object sender, EventArgs e)
        {
           
         try
            {
              
           
               RaporTanımla fr = new RaporTanımla();
           

            fr.ShowDialog();
            }
            catch {

                RaporTanımla fr = new RaporTanımla();


                fr.rapor_no = "0";
                fr.rapor_adi = "Yeni Rapor";
                fr.rapor_dosya_adi = "";
              
                fr.rapor_kul_no = "0";
                fr.ShowDialog();
                dgv_guncelle();
            
            }
         dgv_guncelle();
        }

        private void değiştirToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                RaporTanımla fr = new RaporTanımla();
                int index1 = gridView1.FocusedRowHandle;
                fr.rapor_no = Convert.ToString(gridView1.GetRowCellValue(index1, "SNO").ToString());
                fr.rapor_adi = Convert.ToString(gridView1.GetRowCellValue(index1, "ADI").ToString());
                fr.rapor_dosya_adi = Convert.ToString(gridView1.GetRowCellValue(index1, "FORM").ToString());
              
                fr.rapor_kul_no = Convert.ToString(gridView1.GetRowCellValue(index1, "KULLANICI").ToString());
                // sqlbaglanti.CommScalar("UPDATE TK_BA_BS  SET tp_gonder=0 WHERE cari_kodu='" + cari_kodu + "'", CommandType.Text);
                fr.ShowDialog();
                dgv_guncelle();
            }
            catch { }
        }

        private void silToolStripMenuItem_Click(object sender, EventArgs e)
        {
            int index1 = gridView1.FocusedRowHandle;
            try
            {
                if (MessageBox.Show("Secilen Kayıt Silinecek  ", "Silme Onayı Verin", MessageBoxButtons.OKCancel) == DialogResult.OK)
                {

                    Int32 f_RECno = Convert.ToInt32(gridView1.GetRowCellValue(index1, "KAYITNO").ToString());
                    sqlbaglanti.CommScalar("DELETE  FROM [TK_FORM_DZYN]  WHERE [rpr_RECno]=" + f_RECno + "", CommandType.Text);

                    dgv_guncelle();
                }
               
            }
            catch { }
        }

        private void gridView1_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
        {
           
               
                int index1 = gridView1.FocusedRowHandle;
               
                secilen_rapor_adi = Convert.ToString(gridView1.GetRowCellValue(index1, "ADI").ToString());
                secilen_rapor_dosyasi = Convert.ToString(gridView1.GetRowCellValue(index1, "FORM").ToString());
                rapor_filtre_varyok = Convert.ToInt16(gridView1.GetRowCellValue(index1, "FİLTRE").ToString());
                
                
         
        }

        private void buton_tasarim_Click(object sender, EventArgs e)
        {
            this.Hide();

            FormTasarim();
            this.Show();
            
        }

        private void buton_ekran_Click(object sender, EventArgs e)
        {
            //this.Hide();

            FormDok();
            //this.Show();
        }

        private void buton_yazdır_Click(object sender, EventArgs e)
        {
            FormYazdir();
        }

        private void değişkenListesiToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Raporlar.RaporDegiskenleri fr = new RaporDegiskenleri();
            fr.Show();
        }
    }
}